<?php
namespace tp5_lib\common\controller;

use tp5_lib\install\logic\Module;

/**
 * 第三方服务器回调控制器的基类
 * 因为这种调用无法查看结果，所以将结果保留到日志中
 * 必须返回第三方指定的内容
 */
class NotifyBaseController
{
    public function __construct()
    {
        $module=new Module();
        $record=[
            "notify"=>$_POST,
            "result"=>"",
        ];
        set_error_handler(function($errno, $errstr , $errfile, $errline)use($module,$record){
            $record["result"]=[
                "type"=>"error",
                "errno"=>$errno, 
                "errstr"=>$errstr , 
                "errfile"=>$errfile, 
                "errline"=>$errline,
            ];
            $module->write("alipay_record_".time(),$record);
            echo "error";exit;
        });
        set_exception_handler(function($ex)use($module,$record){
            /** @var \Exception $ex */
            $record["result"]=[
                "type"=>"exception",
                "message"=>$ex->getMessage(),
                "code"=>$ex->getCode(),
                "file"=>$ex->getFile(),
                "line"=>$ex->getLine(),
                "trace"=>$ex->getTrace(),
            ];
            $module->write("alipay_record_".time(),$record);
            echo "exception";exit;
        });
    }
    protected function success($message)
    {
        echo $message;exit;
    }
    protected function error($message)
    {
        echo $message;exit;
    }
}
